package com.ruicar.afs.cloud.common.modules.dto.mq.approve;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>Description: </p>
 *
 * @author ZC.GUO
 * @version 1.0
 * @date create on 2020-05-13 17:06
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CaseCarInfoDto implements Serializable {
    /**
     * 主键
     */
    @JSONField(name = "id")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long id;
    /**
     * 申请编号
     */
    @JSONField(name = "applyNo")
    private String applyNo;
    /**
     * 车架号
     */
    @JSONField(name = "carVin")
    private String carVin;
    /**
     * 车辆制造商
     */
    @JSONField(name = "carManufacturer")
    private String carManufacturer;
    /**
     * 品牌编号
     */
    @JSONField(name = "brandCode")
    private String brandCode;
    /**
     * 品牌名称
     */
    @JSONField(name = "brandName")
    private String brandName;
    /**
     * 车型编号
     */
    @JSONField(name = "modelCode")
    private String modelCode;
    /**
     * 车型名称
     */
    @JSONField(name = "modelName")
    private String modelName;
    /**
     * 款式编号
     */
    @JSONField(name = "styleCode")
    private String styleCode;
    /**
     * 款式名称
     */
    @JSONField(name = "styleName")
    private String styleName;
    /**
     * 指导价
     */
    @JSONField(name = "guidePrice")
    private BigDecimal guidePrice;
    /**
     * 销售价
     */
    @JSONField(name = "salePrice")
    private BigDecimal salePrice;
    /**
     * 燃料类型
     */
    @JSONField(name = "fuelType")
    private String fuelType;
    /**
     * 发动机号
     */
    @JSONField(name = "engineNo")
    private String engineNo;
    /**
     * 车牌号码
     */
    @JSONField(name = "licensePlate")
    private String licensePlate;
    /**
     * 车辆颜色
     */
    @JSONField(name = "carColor")
    private String carColor;
    /**
     * 排量
     */
    @JSONField(name = "carDisplacement")
    private String carDisplacement;
    /**
     * 变速器
     */
    @JSONField(name = "carTransmission")
    private String carTransmission;
    /**
     * 使用性质
     */
    @JSONField(name = "carFunction")
    private String carFunction;
    /**
     * 上牌省份
     */
    @JSONField(name = "licenseProvince")
    private String licenseProvince;
    /**
     * 上牌城市
     */
    @JSONField(name = "licenseCity")
    private String licenseCity;
    /**
     * 购车地址省份
     */
    @JSONField(name = "purchaseProvince")
    private String purchaseProvince;
    /**
     * 购车地址城市
     */
    @JSONField(name = "purchaseCity")
    private String purchaseCity;
    /**
     * 购车地址区县
     */
    @JSONField(name = "purchaseCounty")
    private String purchaseCounty;
    /**
     * 购车地址街道
     */
    @JSONField(name = "purchaseStreet")
    private String purchaseStreet;
    /**
     * 购车地址详情
     */
    @JSONField(name = "purchaseAddress")
    private String purchaseAddress;
    /**
     * 核定载客
     */
    @JSONField(name = "totalPassenger")
    private String totalPassenger;
    /**
     * 表显里程
     */
    @JSONField(name = "mileage")
    private BigDecimal mileage;
    /**
     * 所有人
     */
    @JSONField(name = "carBelongs")
    private String carBelongs;
    /**
     * 所有人证件类型
     */
    @JSONField(name = "belongsCertType")
    private String belongsCertType;
    /**
     * 所有人证件号码
     */
    @JSONField(name = "belongsCertNo")
    private String belongsCertNo;
    /**
     * 所有人住址
     */
    @JSONField(name = "belongsAddress")
    private String belongsAddress;
    /**
     * 二手车销售价
     */
    @JSONField(name = "secondSalePrice")
    private BigDecimal secondSalePrice;
    /**
     * 评估价
     */
    @JSONField(name = "evaluatingPrice")
    private BigDecimal evaluatingPrice;
    /**
     * 车辆出厂日期
     */
    @JSONField(name = "vehicleMadeDate", format = "yyyyMMdd")
    private Date vehicleMadeDate;
    /**
     * 首次登陆日期
     */
    @JSONField(name = "firstLandingDate", format = "yyyyMMdd")
    private Date firstLandingDate;
    /**
     * 评估师
     */
    @JSONField(name = "carAppraiser")
    private String carAppraiser;
    /**
     * 车商编号
     */
    @JSONField(name = "carDealerId")
    private String carDealerId;
    /**
     * 车商姓名
     */
    @JSONField(name = "carDealerName")
    private String carDealerName;
    /**
     * 车商联系方式
     */
    @JSONField(name = "carDealerPhone")
    private String carDealerPhone;
    /**
     * 车商所在省份
     */
    @JSONField(name = "carDealerProvince")
    private String carDealerProvince;
    /**
     * 车商所在城市
     */
    @JSONField(name = "carDealerCity")
    private String carDealerCity;
    /**
     * 车商所在区县
     */
    @JSONField(name = "carDealerCounty")
    private String carDealerCounty;
    /**
     * 车商所在街道
     */
    @JSONField(name = "carDealerStreet")
    private String carDealerStreet;
    /**
     * 车商详细地址
     */
    @JSONField(name = "carDealerAddress")
    private String carDealerAddress;
    /**
     * 注册地址省份
     */
    @JSONField(name = "registProvince")
    private String registProvince;
    /**
     * 注册地址城市
     */
    @JSONField(name = "registCity")
    private String registCity;
    /**
     * 一年内过户次数
     */
    @JSONField(name = "yearTransNum")
    private Integer yearTransNum;
    /**
     * 总过户次数
     */
    @JSONField(name = "transNums")
    private Integer transNums;
    /**
     * 是否循环过户
     */
    @JSONField(name = "isCirTrans")
    private String isCirTrans;
    /**
     * 是否抵押
     */
    @JSONField(name = "isMortgage")
    private String isMortgage;
    /**
     * 挂靠方式
     */
    @JSONField(name = "affiliatedType")
    private String affiliatedType;
    /**
     * 挂靠公司ID
     */
    @JSONField(name = "affCompanyId")
    private String affCompanyId;
    /**
     * 个体工商户名称
     */
    @JSONField(name = "indBusinessName")
    private String indBusinessName;
    /**
     * 个体工商户社会统一信用代码
     */
    @JSONField(name = "indBusinessUsci")
    private String indBusinessUsci;
    /**
     * 整车型号
     */
    @JSONField(name = "fullModelNum")
    private String fullModelNum;
    /**
     * 主挂类别
     */
    @JSONField(name = "mainAffType")
    private String mainAffType;
    /**
     * 车辆种类
     */
    @JSONField(name = "carKind")
    private String carKind;
    /**
     * 车辆用途
     */
    @JSONField(name = "carUse")
    private String carUse;
    /**
     * 车身级别
     */
    @JSONField(name = "carBodyClass")
    private String carBodyClass;
    /**
     * 首次上牌地址
     */
    @JSONField(name = "firstLicenseAddress")
    private String firstLicenseAddress;
    /**
     * 车辆抵押时间
     */
    @JSONField(name = "carMortDate", format = "yyyyMMdd")
    private Date carMortDate;
    /**
     * 车辆解除抵押时间
     */
    @JSONField(name = "releaseMortDate", format = "yyyyMMdd")
    private Date releaseMortDate;
    /**
     * 车辆结清时间
     */
    @JSONField(name = "carSettleDate", format = "yyyyMMdd")
    private Date carSettleDate;
    /**
     * 认定价格
     */
    @JSONField(name = "firmPrice")
    private BigDecimal firmPrice;
    /**
     * 开票日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date invoiceTime;
    /**
     * 是否上牌
     */
    @JSONField(name = "isFirstLicense")
    private String isFirstLicense;
    /**
     * 首次上牌省份
     */
    @JSONField(name = "firstLicenseProvince")
    private String firstLicenseProvince;
    /**
     * 首次上牌城市
     */
    @JSONField(name = "firstLicenseCity")
    private String firstLicenseCity;
    /**
     * 车联网配置
     */
    @JSONField(name = "isInternet")
    private String isInternet;
    /**
     * 配置
     */
    @JSONField(name = "configure")
    private String configure;
    /**
     * 年款
     */
    @JSONField(name = "yearStyle")
    private String yearStyle;
    /**
     * 合作平台
     */
    @JSONField(name = "cooperPlat")
    private String cooperPlat;
    /**
     * 版本
     */
    @JSONField(name = "version")
    private String version;

}
